آموزش کلاس Master Backend [Golang + Postgres + Kubernetes + gRPC]

Backend Master Class [Golang + Postgres + Kubernetes + gRPC]

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: همه چیز را در مورد توسعه وب باطن بیاموزید: Golang، Postgres، Redis، Gin، gRPC، Docker، Kubernetes، AWS، طرح پایگاه داده طراحی CI/CD با استفاده از DBML و تولید خودکار کد SQL از آن. درک عمیق سطوح جداسازی DB، تراکنش ها و نحوه اجتناب از آن بن بست تولید خودکار کد Golang برای تعامل با پایگاه داده ایجاد یک وب سرویس باطن RESTful با استفاده از چارچوب Gin ایمن API ها با احراز هویت کاربر، JWT و PASETO نوشتن مجموعه تست قوی تر با پوشش بالا با استفاده از رابط ها و تمسخر ساخت یک تصویر Docker حداقل برای استقرار و استفاده Docker-compose برای توسعه راه اندازی Github Action برای ساخت و استقرار خودکار برنامه در خوشه AWS Kubernetes ثبت دامنه و پیکربندی ورودی Kubernetes برای هدایت ترافیک به سرویس وب فعال کردن صدور خودکار و تمدید گواهی TLS برای دامنه با Let's Encrypt Take your web خدمات به سطح بعدی با gRPC و gRPC gateway کارگران پس زمینه را برای پردازش وظایف به صورت ناهمزمان با Redis اجرا کنید و Asynq پیش نیازها:فقط مهارت اولیه برنامه نویسی مورد نیاز است.

در این دوره آموزشی، گام به گام نحوه طراحی، توسعه و استقرار یک وب سرویس پشتیبان را از ابتدا یاد خواهید گرفت. من معتقدم بهترین راه برای یادگیری برنامه نویسی ساختن یک اپلیکیشن واقعی است. بنابراین، در طول دوره، یاد خواهید گرفت که چگونه یک وب سرویس پشتیبان برای یک بانک ساده بسازید. APIهایی را برای frontend فراهم می کند تا کارهای زیر را انجام دهد:

  • حساب‌های بانکی ایجاد و مدیریت کنید.

  • همه تغییرات موجودی را در هر یک از حساب ها ثبت کنید.

  • انتقال پول بین 2 حساب انجام دهید.

زبان برنامه نویسی که ما برای توسعه این سرویس استفاده خواهیم کرد Golang است، اما این دوره فقط در مورد کدنویسی در Go نیست. شما موضوعات مختلف زیادی را در مورد توسعه وب باطن یاد خواهید گرفت. آنها در 5 بخش ارائه شده اند:

  1. در بخش اول، شما عمیقاً در مورد نحوه طراحی پایگاه داده، تولید کدهایی برای صحبت با DB به روشی سازگار و قابل اعتماد با استفاده از تراکنش ها، درک سطوح جداسازی DB و نحوه استفاده صحیح از آن در تولید یاد خواهید گرفت. علاوه بر پایگاه داده، نحوه استفاده از docker برای توسعه محلی، نحوه استفاده از Git برای مدیریت کدهای خود، و نحوه استفاده از GitHub Action برای اجرای خودکار تست های واحد را نیز خواهید آموخت.

  2. در بخش دوم، نحوه ساخت مجموعه ای از API های HTTP RESTful با استفاده از Gin - یکی از محبوب ترین فریم ورک های Golang برای ساخت سرویس های وب را یاد خواهید گرفت. این شامل همه چیز از بارگیری تنظیمات برنامه، تمسخر DB برای تست های واحد قوی تر، رسیدگی به خطاها، احراز هویت کاربران و ایمن سازی API ها با توکن های دسترسی JWT و PASETO است.

  3. در بخش سوم، یاد خواهید گرفت که چگونه برنامه خود را با Docker بسازید و آن را در یک خوشه تولیدی Kubernetes در AWS مستقر کنید. سخنرانی ها با یک راهنمای گام به گام بسیار دقیق هستند، از نحوه ساخت یک تصویر مینیمال داکر، راه اندازی یک حساب کاربری لایه آزاد AWS، ایجاد پایگاه داده تولید، ذخیره و بازیابی اسرار تولید، ایجاد یک خوشه Kubernetes با EKS، از GitHub Action برای ساخت و استقرار خودکار تصویر در خوشه EKS، خرید یک نام دامنه و مسیریابی ترافیک به سرویس، ایمن کردن اتصال با HTTPS و تمدید خودکار گواهی TLS از Let's Encrypt استفاده کنید.

  4. در بخش چهارم، چندین موضوع پیشرفته پیشرفته مانند مدیریت جلسات کاربر، ساخت APIهای gRPC، استفاده از دروازه gRPC برای ارائه همزمان درخواست‌های gRPC و HTTP، تعبیه اسناد Swagger به عنوان بخشی از سرویس پشتیبان بحث خواهیم کرد. به‌روزرسانی بخشی از یک رکورد با استفاده از پارامترهای اختیاری، و نوشتن میان‌افزارهای HTTP لاگر ساخت‌یافته و رهگیرهای gRPC.

  5. سپس بخش پنجم شما را با پردازش ناهمزمان در Golang با استفاده از پس‌زمینه‌کارها و Redis به‌عنوان صف پیام آن آشنا می‌کند، و چگونه می‌توانید سرور را به‌خوبی خاموش کنید تا از منابع پردازشی خود محافظت کنید. از آنجایی که این بخش هنوز در حال انجام است، ما به ساخت و آپلود ویدیوهای جدید در مورد موضوعات جدید در آینده ادامه خواهیم داد، مانند: ارسال ایمیل، خاموش کردن سرورها، CORS، درج انبوه و غیره. بنابراین لطفاً برای بررسی به اینجا بازگردید. آنها هر از گاهی خارج می شوند.

این دوره با جزئیات بسیار طراحی شده است، به طوری که همه، حتی کسانی که تجربه برنامه نویسی بسیار کمی دارند، می توانند آن را درک کنند و به تنهایی انجام دهند. من کاملاً معتقدم که پس از دوره، شما می توانید با اطمینان بیشتر و موثرتر روی پروژه های خود کار کنید.


سرفصل ها و درس ها

کار با پایگاه داده [Postgres + SQLC] Working with database [Postgres + SQLC]

  • طرح DB را طراحی کنید و کد SQL را با dbdiagram.io تولید کنید Design DB schema and generate SQL code with dbdiagram.io

  • نصب و استفاده از Docker + Postgres + TablePlus برای ایجاد طرح DB Install & use Docker + Postgres + TablePlus to create DB schema

  • نحوه نوشتن و اجرای مهاجرت پایگاه داده در Golang How to write & run database migration in Golang

  • ایجاد کد CRUD Golang از SQL | مقایسه db/sql، gorm، sqlx و sqlc Generate CRUD Golang code from SQL | Compare db/sql, gorm, sqlx & sqlc

  • تست های واحد را برای پایگاه داده CRUD با داده های تصادفی در Golang بنویسید Write unit tests for database CRUD with random data in Golang

  • روشی تمیز برای پیاده سازی تراکنش پایگاه داده در Golang A clean way to implement database transaction in Golang

  • قفل تراکنش DB و نحوه مدیریت بن بست در Golang DB transaction lock & How to handle deadlock in Golang

  • چگونه از بن بست در تراکنش DB جلوگیری کنیم؟ سوالات سفارش مهم است! How to avoid deadlock in DB transaction? Queries order matters!

  • سطوح جداسازی تراکنش ها را عمیقاً درک کنید و پدیده ها را بخوانید Deeply understand transaction isolation levels & read phenomena

  • راه اندازی Github Actions برای Golang + Postgres برای اجرای تست های خودکار Setup Github Actions for Golang + Postgres to run automated tests

ساخت API HTTP JSON RESTful [Gin + JWT + PASETO] Building RESTful HTTP JSON API [Gin + JWT + PASETO]

  • RESTful HTTP API را در Go با استفاده از Gin پیاده سازی کنید Implement RESTful HTTP API in Go using Gin

  • پیکربندی را از متغیرهای فایل و محیط در Go with Viper بارگیری کنید Load config from file & environment variables in Go with Viper

  • DB ساختگی برای آزمایش HTTP API در Go و پوشش 100٪ Mock DB for testing HTTP API in Go and achieve 100% coverage

  • API انتقال پول را با اعتبارسنجی پارامترهای سفارشی پیاده سازی کنید Implement transfer money API with a custom params validator

  • جدول کاربران را با محدودیت های کلیدی منحصر به فرد و خارجی در PostgreSQL اضافه کنید Add users table with unique & foreign key constraints in PostgreSQL

  • نحوه مدیریت صحیح خطاهای DB در Golang How to handle DB errors in Golang correctly

  • چگونه رمزهای عبور را به صورت امن ذخیره کنیم؟ رمز عبور را در Go with Bcrypt هش کنید! How to securely store passwords? Hash password in Go with Bcrypt!

  • نحوه نوشتن تست های واحد قوی تر با تطبیق گوموک سفارشی How to write stronger unit tests with a custom gomock matcher

  • چرا PASETO برای احراز هویت مبتنی بر توکن بهتر از JWT است؟ Why PASETO is better than JWT for token-based authentication?

  • نحوه ایجاد و تأیید توکن JWT و PASETO در Golang How to create and verify JWT & PASETO token in Golang

  • API کاربر ورود به سیستم را پیاده سازی کنید که رمز دسترسی PASETO یا JWT را در Go برمی گرداند Implement login user API that returns PASETO or JWT access token in Go

  • پیاده سازی میان افزار احراز هویت و قوانین مجوز در Golang با استفاده از Gin Implement authentication middleware and authorization rules in Golang using Gin

استقرار برنامه در تولید [Docker + Kubernetes + AWS] Deploying the application to production [Docker + Kubernetes + AWS]

  • چگونه یک تصویر کوچک Golang Docker با یک Dockerfile چند مرحله ای بسازیم How to build a small Golang Docker image with a multistage Dockerfile

  • نحوه استفاده از شبکه داکر برای اتصال 2 کانتینر مستقل How to use docker network to connect 2 stand-alone containers

  • نحوه نوشتن فایل docker-compose و کنترل سفارشات راه اندازی سرویس How to write docker-compose file and control service start-up orders

  • نحوه ایجاد یک حساب کاربری AWS لایه آزاد How to create a free-tier AWS account

  • ساخت خودکار و انتقال تصویر داکر به AWS ECR با Github Actions Auto build & push docker image to AWS ECR with Github Actions

  • نحوه ایجاد یک پایگاه داده تولید در AWS RDS How to create a production database on AWS RDS

  • اسرار تولید را با مدیر اسرار AWS ذخیره و بازیابی کنید Store & retrieve production secrets with AWS secrets manager

  • معماری Kubernetes و نحوه ایجاد یک خوشه EKS در AWS Kubernetes architecture & How to create an EKS cluster on AWS

  • نحوه استفاده از kubectl و k9s برای اتصال به خوشه kubernetes در AWS EKS How to use kubectl & k9s to connect to a kubernetes cluster on AWS EKS

  • نحوه استقرار یک برنامه وب در خوشه Kubernetes در AWS EKS How to deploy a web app to Kubernetes cluster on AWS EKS

  • ثبت دامنه و تنظیم A-record با استفاده از Route53 Register a domain & set up A-record using Route53

  • نحوه استفاده از Ingress برای هدایت ترافیک به سرویس های مختلف در Kubernetes How to use Ingress to route traffics to different services in Kubernetes

  • صدور خودکار و تمدید گواهینامه های TLS با مدیر گواهی و Let's Encrypt Auto issue & renew TLS certificates with cert-manager and Let's Encrypt

  • استقرار خودکار به Kubernetes با Github Action Automatic deploy to Kubernetes with Github Action

موضوعات پیشرفته Backend [جلسات + gRPC] Advanced Backend Topics [Sessions + gRPC]

  • نحوه مدیریت جلسه کاربر با توکن رفرش How to manage user session with refresh token

  • صفحه مستندات DB و طرح SQL dump را از DBML ایجاد کنید Generate DB documentation page and schema SQL dump from DBML

  • مقدمه ای بر gRPC Introduction to gRPC

  • gRPC API را تعریف کنید و کد Go را با protobuf تولید کنید Define gRPC API and generate Go code with protobuf

  • چگونه یک سرور golang gRPC را اجرا کنیم و API آن را فراخوانی کنیم How to run a golang gRPC server and call its API

  • gRPC API را برای ایجاد و ورود کاربران در Go پیاده سازی کنید Implement gRPC API to create and login users in Go

  • gRPC Gateway: یک بار کد بنویسید، هر دو درخواست gRPC و HTTP را ارائه دهید gRPC Gateway: write code once, serve both gRPC & HTTP requests

  • نحوه استخراج اطلاعات از متادیتا gRPC How to extract information from gRPC metadata

  • تولید و ارائه خودکار مستندات swagger از سرور Go Automatic generate & serve swagger documentation from Go server

  • فایل‌های فرانت‌اند ثابت را در باینری سرور باطن Golang قرار دهید Embed static front-end files inside Golang backend server's binary

  • پارامترهای gRPC را تأیید کنید و پاسخ دوستانه برای انسان/ماشین ارسال کنید Validate gRPC parameters and send human/machine friendly response

  • مهاجرت های DB را مستقیماً در کد Golang اجرا کنید Run DB migrations directly inside Golang code

  • به روز رسانی جزئی رکورد DB با آرگومان های پوچ پذیر SQLC Partial update DB record with SQLC nullable arguments

  • API به روز رسانی gRPC را با پارامترهای اختیاری بسازید Build gRPC update API with optional parameters

  • برای محافظت از gRPC API مجوز اضافه کنید Add authorization to protect gRPC API

  • گزارش های ساختاریافته برای API های gRPC بنویسید Write structured logs for gRPC APIs

  • نحوه نوشتن میان افزار HTTP Logger در Go How to write HTTP logger middleware in Go

پردازش ناهمزمان با کارگران پس زمینه [Asynq + Redis] Asynchronous processing with background workers [Asynq + Redis]

  • پیاده سازی پس زمینه کارگر با صف وظیفه Redis Implement background worker with Redis task queue

  • ادغام async worker به وب سرور Go Integrate async worker to Go web server

  • ارسال وظایف ناهمگام به Redis در یک تراکنش DB Send async tasks to Redis within a DB transaction

  • نحوه رسیدگی به خطاها و چاپ لاگ برای کارگران Async How to handle errors and print logs for Async workers

  • ممکن است مقداری تاخیر برای کارهای ناهمگام شما خوب باشد Some delay might be good for your async tasks

  • نحوه ارسال ایمیل در Go از طریق جیمیل How to send email in Go via Gmail

  • نحوه رد شدن از تست در Go و پیکربندی پرچم تست در vscode How to skip test in Go and config test flag in vscode

  • ویژگی تأیید ایمیل: طراحی DB و ارسال ایمیل Email verification feature: design DB and send email

  • هی، هنوز به پایان نرسیده است! Hey, it's not the end yet!

  • بعدش چی؟ What's next?

نمایش نظرات

آموزش کلاس Master Backend [Golang + Postgres + Kubernetes + gRPC]
جزییات دوره
15.5 hours
63
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
25,117
4.7 از 5
دارد
دارد
دارد
TECH SCHOOL
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

TECH SCHOOL TECH SCHOOL

از نوب تا حرفه ای